package com.ruoyi.project.access.mapper;

import com.ruoyi.project.access.domain.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface EnterpriseBasicInfoMapper {
    void addEnterpriseBasicInfos(@Param("enterpriseBasicInfos") List<EnterpriseBasicInfo> enterpriseBasicInfos);

    List<EnterpriseBasicInfo> getEnterpriseBasicInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalEnterpriseBasicInfos(String chainType, String scenario, String product, String statement);

    void addHumanResourceInfos(@Param("humanResourceInfos") List<HumanResourceInfo> humanResourceInfos);

    List<HumanResourceInfo> getHumanResourceInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalHumanResourceInfos(String chainType, String scenario, String product, String statement);

    void addBusinessStatusInfos(@Param("businessStatusInfos") List<BusinessStatusInfo> businessStatusInfos);

    List<BusinessStatusInfo> getBusinessStatusInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalBusinessStatusInfos(String chainType, String scenario, String product, String statement);

    void addMaterialManagementInfos(@Param("materialManagementInfos") List<MaterialManagementInfo> materialManagementInfos);

    List<MaterialManagementInfo> getMaterialManagementInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalMaterialManagementInfos(String chainType, String scenario, String product, String statement);

    void addProductionCapacityInfos(@Param("productionCapacityInfos") List<ProductionCapacityInfo> productionCapacityInfos);

    List<ProductionCapacityInfo> getProductionCapacityInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalProductionCapacityInfos(String chainType, String scenario, String product, String statement);

    void addSaleCapabilityInfos(@Param("saleCapabilityInfos") List<SaleCapabilityInfo> saleCapabilityInfos);

    List<SaleCapabilityInfo> getSaleCapabilityInfos(int limit, int offset, String chainType, String scenario, String product, String statement);

    int getTotalSaleCapabilityInfos(String chainType, String scenario, String product, String statement);

    List<String> getChainType();

    List<String> getChainTypeByName(String enterpriseName);

    List<String> getScenario(String chainType);

    List<String> getProduct(String chainType, String scenario);
    void deleteEnterpriseBasicInfos(String chainType, String scenario, List<String> enterprises);

    void deleteHumanResourceInfos(String chainType, String scenario, List<String> enterprises);

    void deleteBusinessStatusInfos(String chainType, String scenario, List<String> enterprises);

    void deleteMaterialManagementInfos(String chainType, String scenario, List<String> enterprises);

    void deleteProductionCapacityInfos(String chainType, String scenario, List<String> enterprises);

    void deleteSaleCapabilityInfos(String chainType, String scenario, List<String> enterprises);

    List<String> getPartScenario(String chainType, String enterpriseName);

    List<String> getPartProduct(String chainType,String scenario,String enterpriseName);


    List<MaterialManagementInfo> getMaterialManagementInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalMaterialManagementInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<ProductionCapacityInfo> getProductionCapacityInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalProductionCapacityInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<SaleCapabilityInfo> getSaleCapabilityInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalSaleCapabilityInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<EnterpriseBasicInfo> getEnterpriseBasicInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalEnterpriseBasicInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<HumanResourceInfo> getHumanResourceInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalHumanResourceInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<BusinessStatusInfo> getBusinessStatusInfosByName(int limit, int offset, String chainType, String scenario, String product, String statement, String enterpriseName);

    int getTotalBusinessStatusInfosByName(String chainType, String scenario, String product, String statement, String enterpriseName);

    List<EnterpriseBasicInfo> getEnterpriseBasicInfosByNameToPicture(String chainType, String scenario, String product);

    List<HumanResourceInfo> getHumanResourceInfosByNameToPicture(String chainType, String scenario, String product);

    List<BusinessStatusInfo> getBusinessStatusInfosByNameToPicture(String chainType, String scenario, String product);


    void deleteHumanResourceScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteBusinessStatusScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteMaterialManagementScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteOverAllScore(String chainType, String scenario, List<String> enterprises);

    void deletePriceScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteQualityScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteServiceScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteTechnologyScoreInfos(String chainType, String scenario, List<String> enterprises);

    void deleteByEnterpriseAList(String chainType, String scenario, List<String> enterprises);

    void deleteByEnterpriseBList(String chainType, String scenario, List<String> enterprises);
}
